package com.ruoyi.biz.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BizBaseEntity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.core.domain.DbArray;
import lombok.Data;
import lombok.experimental.Accessors;


/**
 * 项目信息对象 biz_project
 * 
 * @author tianl
 * @date 2024-12-20
 */
@Data
@Accessors(chain = true)
@TableName("biz_project")
public class BizProject extends BizBaseEntity {
    private static final long serialVersionUID = 1L;

    /** 项目名称 */
    @Excel(name = "项目名称",sort = 4)
    private String projectName;

    /** 所属板块 */
    private Long sectorId;

    /** 项目类型 */
    @Excel(name = "项目类型",dictType="project_classify",sort = 6)
    private String classifyCode;

    /** 合同类型 */
    @Excel(name = "合同类型",dictType="contract_type",sort = 8)
    private String contractTypeCode;


    /** 项目建设省 */
    private DbArray location;

    /** 项目总投资 */
    private BigDecimal investment;

    /** 合同开始时间 */
    private Date termStart;

    /** 合同结束时间 */
    private Date termEnd;

    /** 签订时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "签订时间", width = 30, dateFormat = "yyyy-MM-dd",sort = 1)
    private Date signTime;

    /** 签订地点 */
    private String signAddr;

    /** 融资额 */
    private BigDecimal financeAmount;

    /** 专项名称 */
    private String specialName;

    /** 评审人 */
    private DbArray reviewer;

    /** 申报年度 */
    private String declareYear;

    /** 被评估单位 */
    private String assessed;

    /** 被审计单位 */
    private String auditee;

    /** 评估标的 */
    private String assessment;

    /** 渠道联系人 */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String channelContacts;
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private Long channelId;

    /** 渠道联系电话 */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String channelPhone;

    /** 渠道费用 */
    private BigDecimal channelCost;

    /** 渠道税费 */
    private BigDecimal channelTax;

    /** 委托方名称 */
    @Excel(name = "甲方名称",sort = 9)
    private String principalName;
    private Long principalId;

    /** 所属区域 */
    private DbArray principalLocation;
    /** 委托方组织机构代码 */
    private String principalUsci;

    /** 详细地址 */
    private String principalAddr;

    /** 委托方经办人 */
    private String principalContacts;

    /** 委托方联系电话 */
    private String principalPhone;

    /** 受托方名称 */
    @Excel(name = "受托方",sort = 10)
    private String trusteeName;
    private Long trusteeId;

    /** 受托方联系人 */
    private String trusteeContacts;

    /** 受托方联系电话 */
    private String trusteePhone;

    /** 服务内容 */
    private String serviceContent;

    /** 成果及要求 */
    private String requirements;

    /** 预估交付时间 */
    private Date deadline;

    /** 履约部门 */
    private Long enforceDeptId;

    /** 创建部门 */
    private Long deptId;
    /**
     * 创建人
     */
    private Long userId;

    /** 负责人 */
    private Long manager;

    /** 组员 */
    private String members;

    /** 项目状态 0待递交，1进行中，2逾期，3转司法，4待开票，5待收款，98底稿已归档，99已终止，100已完成 */
    @Excel(name = "项目状态",dictType="project_status",sort = 20)
    private Integer projectStatus;

    /** 项目级别*/
    @Excel(name = "项目级别",dictType="project_level",sort = 3)
    private String level;

    /** 优先级*/
    @Excel(name = "优先级",dictType="project_priority",sort = 2)
    private String priority;

    /** 实得额 */
    @Excel(name = "实得额",sort = 11)
    private BigDecimal realAmount;

    /** 合同总金额 */
    @Excel(name = "合同额",sort = 12)
    private BigDecimal totalAmount;

    /** 已收款 */
    @Excel(name = "已收款",sort = 13)
    private BigDecimal receivedAmount;
    /** 未收款 */
    @Excel(name = "未收款",sort = 14)
    private BigDecimal unReceivedAmount;
    /** 成本 */
    @Excel(name = "预估成本",sort = 15)
    private BigDecimal baseCost;
    /** 利润 */
    @Excel(name = "预估税前利润",sort = 16)
    private BigDecimal profit;
    /** 绩效 */
    private BigDecimal performance;
    /** 管理绩效 */
    private BigDecimal managePerformance;
    /** 技术绩效 */
    @Excel(name = "预估技术绩效",sort = 17)
    private BigDecimal agreePerformance;
    /** 市场绩效 */
    @Excel(name = "预估市场绩效",sort = 18)
    private BigDecimal marketPerformance;
    /** 最终利润 */
    @Excel(name = "预估净利润",sort = 19)
    private BigDecimal finalProfit;
    /** 实际收入 */
    private BigDecimal realIncome;
    /** 经办人(项目负责人) */
    private Long transactorId;
    /** 全额回款日*/
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date receiptAllDate;

    /**
     * 创建人对技术绩效评分
     */
    @Excel(name = "技术绩效评分",sort = 20)
    private BigDecimal createScore;
    /**
     * 负责人对市场绩效评分
     */
    @Excel(name = "市场绩效评分",sort = 21)
    private BigDecimal managerScore;
    private Date finishTime;
}
